Program Analysis Using Binary Decision Diagrams
نویسنده
چکیده
A fundamental problem in interprocedural program analyses is the need to represent and manipulate collections of large sets. Binary Decision Diagrams (BDDs) are a data structure widely used in model checking to compactly encode large state sets. In this dissertation, we develop new techniques and frameworks for applying BDDs to program analysis, and use our BDD-based analyses to gain new insight into factors influencing analysis precision. To make it feasible to express complicated, interrelated analyses using BDDs, we first present the design and implementation of Jedd, a Java language extension which adds relations implemented with BDDs as a datatype, and makes it possible to express BDD-based algorithms at a higher level than existing BDD libraries. Using Jedd, we develop Paddle, a framework of context-sensitive points-to and call graph analyses for Java, as well as client analyses that make use of their results. Paddle supports several variations of context-sensitive analyses, including the use of call site strings and abstract receiver object strings as abstractions of context. We use the Paddle framework to perform an in-depth empirical study of the effect of context-sensitivity variations on the precision of interprocedural program analyses. The use of BDDs enables us to compare context-sensitive analyses on much larger, more realistic benchmarks than has been possible with traditional analysis implementations. Finally, based on the call graph computed by Paddle, we implement, using Jedd, a novel static analysis of the cflow construct in the aspect-oriented language AspectJ. Thanks to the Jedd high-level representation, the implementation of the analysis closely mirrors its specification.
منابع مشابه
Symbolic Solver for Live Variable Analysis of High Level Design Languages
This paper presents an efficient binary decision diagram solver for live variable analysis of high level design languages like SpecC. A novel representation of the program as a global structure using efficient data structure called Binary Decision Diagrams is presented. Based on the global structure of the program, a relational framework for live variable analysis is proposed and the solver alg...
متن کاملUsing Binary Decision Diagrams to Determine Program Equivalence in a Superoptimizer
A superoptimizer is a tool capable of generating an optimal program that computes a desired function. This thesis describes a superoptimizer that uses binary decision diagrams to determine if a generated candidate programs is equivalent to a given target program known to compute the desired function. The superoptimizer is shown to work well for generating program consisting of instructions no m...
متن کاملUsing Datalog with Binary Decision Diagrams for Program Analysis
Many problems in program analysis can be expressed naturally and concisely in a declarative language like Datalog. This makes it easy to specify new analyses or extend or compose existing analyses. However, previous implementations of declarative languages perform poorly compared with traditional implementations. This paper describes bddbddb, a BDD-Based Deductive DataBase, which implements the...
متن کاملSolving the Entailment Problem in the Fluent Calculus Using Binary Decision Diagrams
The paper is an exercise in formal program development. We rigorously show how planning problems encoded as entailment problems in the uent calculus can be mapped onto satissability problems for propositional formulas, which in turn can be mapped to the problem to nd models using binary decision diagrams. The mapping is shown to be sound and complete. Preliminary experimental results of an impl...
متن کاملProgram Analysis Using Binary Decision Diagrams
A fundamental problem in interprocedural program analyses is the need to represent and manipulate collections of large sets. Binary Decision Diagrams (BDDs) are a data structure widely used in model checking to compactly encode large state sets. In this dissertation, we develop new techniques and frameworks for applying BDDs to program analysis, and use our BDD-based analyses to gain new insigh...
متن کامل